<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
  </head>
  <style type="text/css">
    /* 
    第一种：text-align+margin:0 auto
    tips：此方案兼容性较好，可兼容至IE8，
    对于IE567并不支持inline-block，需要使用css hack进行兼容
     */
    /* .parent {
      width: 100%;
      height: 100px;
      background-color: #ccc;
      text-align: center;
    }

    .son {
      width: 100px;
      height: 100%;
      margin: 0 auto;
      background-color: red;
    } */

    /* 
    第二种：position:absolute;left:50%;transform:translate(-50%,0)
    tips：此方案兼容至IE9，因为transform兼容性限制，
    如果.child为定宽元素，可以使用以下写法，兼容性极佳
    .parent{
    position: relative;
    height:1.5em;
    }
    .child{
        position: absolute;
        width:100px;
        left: 50%;
        margin-left:-50px;
    }
     */
    /*  .parent {
      width: 100%;
      height: 100px;
      background-color: #ccc;
      position: relative;
    }

    .son {
      width: 100px;
      height: 100%;
      background-color: red;
      position: absolute;
      left: 50%;
      transform: translate(-50%, 0);
    } */
    /* 
    第三种：display:flex;justify-content:center;
    tips：flex是一个强大的css，生而为布局，它可以轻松的满足各种居中、对其、平分的布局要求，
    但由于现浏览器兼容性问题，此方案很少被使用，但是值得期待浏览器兼容性良好但那一天！
    */
    .parent {
      width: 100%;
      height: 100px;
      background-color: #ccc;
      display: flex;
      justify-content: center
    }

    .son {
      width: 100px;
      height: 100px;
      background-color: red;
    }

    /* 
    第四种：text-align:center;display:inline-block
    tips：此方案兼容性较好，可兼容至IE8，对于IE567并不支持inline-block，
    需要使用css hack进行兼容 
     */
    /* .parent {
      width: 100%;
      height: 100px;
      background-color: #ccc;
      text-align: center;
    }

    .son {
      width: 100px;
      height: 100%;
      background-color: red;
      display: inline-block;
    } */
  </style>

  <body>
    <!-- 
一.居中布局
 -->
    <div class='parent'>
      <div class='son'></div>
    </div>
  </body>

</html>